This invention relates generally to communications systems, and in particular to providing interoperability and end-to-end routing capability for network applications in a communications environment.
Many different network applications provide various services for mobile communications subscribers, including voice, data, text messaging, push-to-talk (PTT), along with many other types of services. These network applications are usually designed independently of each other and often by different entities, so they commonly use proprietary data formats and their own protocols. Because of the resulting incompatibilities, these different network applications rarely interoperate. One major issue in a system that allows network applications to interoperate is that an originating application's application domain does not necessarily correspond to its destination's application domain. These different application domains often use different addressing mechanisms, e.g., email addressing mechanism and telephone numbers.
For example, an interoperating system connects a Private Branch Exchange (PBX) system to a Public Switched Telephone Network (PSTN) and an email system. The interoperating system receives a telephone call from the PBX addressed to a telephone number. The interoperating system needs to decide whether to route that call to the PSTN, to translate the call to text and deliver it via email, or to do both. To make this decision, the interoperating system must appropriately use the originating application's metadata to determine all available applications to which it can be routed, and then leverage contextual information and determine the appropriate routing to one or more destination network applications.
To solve the problem of interoperation between network applications with heterogeneous addressing types, existing interoperating systems, such as Short Message Service-Instant Messaging interoperating system among different wireless operators, or Land Mobile Radio interoperating with commercial PTT systems, have developed specialized addressing mechanisms that resolve the addressing of communicating network applications. Some of these mechanisms employee a common addressing mechanism that forces an addressing requirement on one or more of the communicating network applications. However, this mechanism requires modification of communicating network applications to adapt to the required common addressing. Thus, such an interoperating system is not scalable for dynamically interoperating many network applications.
Another conventional solution creates a fixed binding between different addressing types for the interoperation of the communicating network applications. This solution requires maintaining the addressing state between the communicating network applications in the interoperating system. Thus, this mechanism essentially “hardwires” an address resolution between two network applications. Consequently, such interoperating system does not scalable well either for dynamically interoperating many applications.